1. Technical Field
The present invention relates generally to handling interrupts in a computer system, and more particularly to increasing interrupt handling efficiency in a logically partitioned computer system having an IO adapter that supports adapter virtualization.
2. Description of Related Art
An input/output (IO) adapter needs to notify applications when events that require the attention of the applications occur. For example, when a data packet is transmitted or received, completion of the processing of that data packet by the IO adapter needs to be communicated to the appropriate application, i.e. either the application from which the data packet was sent (outbound) or the application to which the data packet is destined (inbound). In addition, the IO adapter notifies the appropriate application(s) when error events occur. The error events are rare compared to the high rate of events caused by the normal flow of data packets through the IO adapter. The rate of events occurring scales with the speed of the network.
The notification of events to applications is performed primarily through the use of interrupts that are sent to the operating system. When an event occurs that requires notification to an application, an interrupt is generated by the IO adapter and sent to the operating system. An interrupt handler associated with the operating system performs appropriate processing on the interrupt to determine how to handle the occurrence of the event. Interrupts and interrupt handling are generally known in the art.
High speed IO adapters can cause a high rate of interrupts toward the operating system. As mentioned above, as the speed of the network increases, so does the number of events that occur and thus, the number of interrupts. The problem is that interrupt handling can be very expensive in terms of processor performance. That is, processor resources are utilized to handle the interrupts thereby reducing the processor's ability to do other work. Another problem associated with the notification of events from IO adapters is that for IO adapters that serve multiple applications, it is necessary to recognize the source of the interrupt in order to call the associated application.
These problems are made even more evident when the IO adapter is associated with a logically partitioned host system. Since each logical partition may have its own set of applications, its own operating system, memory resources, etc., the problems of large numbers of interrupts and identifying the appropriate application for a particular interrupt is made more complex.
Thus, it would be beneficial to have an improved system and method for handling interrupts in a logically partitioned environment. Moreover, it would be beneficial to have an improved system and method for handling interrupts in which the number of interrupt notifications is reduced and identification of associated applications is made less complex.